package org.groupg.mockdatabyspring.morkdata.controller;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.groupg.mockdatabyspring.morkdata.model.ITTaskInfo;

import java.util.Map;

/**
 * 默认请求处理工程，抽象类无法实例化，但处理内容将实例化处理，需要抽象实现。
 */
public abstract class DefaultBaseCreateController {


    /**
     * 设置模板信息
     *
     * @param taskInfo 完整的模板信息，需要校验
     * @param request  请求
     * @param response 返回
     */
    public abstract void setTemplate(ITTaskInfo taskInfo, HttpServletRequest request, HttpServletResponse response);

    /**
     * 根据模板创建数据
     *
     * @param dataParam 静态数据清单
     * @param request   请求
     * @param response  返回
     */
    public abstract void createData(Map<String, Object> dataParam, HttpServletRequest request, HttpServletResponse response);

    /**
     * 删除任务信息 走 delete 请求
     *
     * @param taskInfo 任务信息的请求（ID 为主）
     * @param request  请求
     * @param response 返回
     */
    public abstract void deleteTemplate(ITTaskInfo taskInfo, HttpServletRequest request, HttpServletResponse response);

    /**
     * 根据流水号查询模板信息并反馈给请求端
     *
     * @param taskInfo 基本任务信息
     * @param request  请求
     * @param response 返回值
     */
    public void queryTemplate(ITTaskInfo taskInfo, HttpServletRequest request, HttpServletResponse response) {

    }

    /**
     * 查询全部模板数据
     *
     * @param request  请求
     * @param response 返回
     */
    public void queryTemplateAll(HttpServletRequest request, HttpServletResponse response) {

    }
}
